package com.vids.model.entity;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 图片
 * </p>
 *
 * @author ly
 */
@JsonFilter("Images-filter")
@TableName("t_image")
public class ImageInfo extends Model<ImageInfo> {

    @JsonIgnore
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 视频标识
     */
    @TableField("ImageID")
    private String ImageID;
    /**
     * 信息分类
     */
    @TableField("InfoKind")
    private Integer InfoKind;
    /**
     * 图像来源
     */
    @TableField("ImageSource")
    private String ImageSource;
    /**
     * 来源视频标识
     */
    @TableField("SourceVideoID")
    private String SourceVideoID;
    /**
     * 原始视频ID
     */
    @TableField("OriginImageID")
    private String OriginImageID;

    /**
     * 事件分类
     */
    @TableField("EventSort")
    private Integer EventSort;
    /**
     * 设备编码
     */
    @TableField("DeviceID")
    private String DeviceID;
    /**
     * 存储路径
     */
    @TableField("StoragePath")
    private String StoragePath;
    /**
     * 图像文件哈希值
     */
    @TableField("FileHash")
    private String FileHash;
    /**
     * 图像文件格式
     */
    @TableField("FileFormat")
    private String FileFormat;
    /**
     * 拍摄时间
     */
    @TableField("ShotTime")
    //@DateTimeFormat(pattern = "yyyyMMddHHmmss")
    private String ShotTime;
    /**
     * 题名
     */
    @TableField("Title")
    private String Title;
    /**
     * 题名补充
     */
    @TableField("TitleNote")
    private String TitleNote;
    /**
     * 专项名
     */
    @TableField("SpecialIName")
    private String SpecialIName;
    /**
     * 关键词
     */
    @TableField("Keyword")
    private String Keyword;
    /**
     * 内容描述
     */
    @TableField("ContentDescription")
    private String ContentDescription;
    /**
     * 主题人物
     */
    @TableField("SubjectCharacter")
    private String SubjectCharacter;
    /**
     * 拍摄地点行政区划代码
     */
    @TableField("ShotPlaceCode")
    private String ShotPlaceCode;
    /**
     * 拍摄地点区划内详细地址
     */
    @TableField("ShotPlaceFullAdress")
    private String ShotPlaceFullAdress;
    /**
     * 拍摄地点经度
     */
    @TableField("ShotPlaceLongitude")
    private Double ShotPlaceLongitude;
    /**
     * 拍摄地点纬度
     */
    @TableField("ShotPlaceLatitude")
    private Double ShotPlaceLatitude;
    /**
     * 水平拍摄方向
     */
    @TableField("HorizontalShotDirection")
    private String HorizontalShotDirection;
    /**
     * 垂直拍摄方向
     */
    @TableField("VerticalShotDirection")
    private String VerticalShotDirection;
    /**
     * 密级代码
     */
    @TableField("SecurityLevel")
    private String SecurityLevel;
    /**
     * 宽度
     */
    @TableField("Width")
    private Integer Width;
    /**
     * 高度
     */
    @TableField("Height")
    private Integer Height;
    /**
     * 照相机制造商
     */
    @TableField("CameraManufacturer")
    private String CameraManufacturer;
    /**
     * 照相机型号
     */
    @TableField("CameraVersion")
    private String CameraVersion;
    /**
     * 光圈值
     */
    @TableField("ApertureValue")
    private Integer ApertureValue;
    /**
     * ISO感光值
     */
    @TableField("ISOSensitivity")
    private Integer ISOSensitivity;
    /**
     * 焦距
     */
    @TableField("FocalLength")
    private Integer FocalLength;
    /**
     * 质量等级
     */
    @TableField("QualityGrade")
    private String QualityGrade;
    /**
     * 采集人
     */
    @TableField("CollectorName")
    private String CollectorName;
    /**
     * 采集单位名称
     */
    @TableField("CollectorOrg")
    private String CollectorOrg;
    /**
     * 采集人证件类型
     */
    @TableField("CollectorIDType")
    private String CollectorIDType;
    /**
     * 采集人证件号码
     */
    @TableField("CollectorID")
    private String CollectorID;
    /**
     * 入库人
     */
    @TableField("EntryClerk")
    private String EntryClerk;
    /**
     * 入库单位名称
     */
    @TableField("EntryClerkOrg")
    private String EntryClerkOrg;
    /**
     * 入库人证件类型
     */
    @TableField("EntryClerkIDType")
    private String EntryClerkIDType;
    /**
     * 入库人证件号码
     */
    @TableField("EntryClerkID")
    private String EntryClerkID;
    /**
     * 入库时间
     */
    @TableField("EntryTime")
    @DateTimeFormat(pattern = "yyyyMMddHHmmss")
    private Date EntryTime;
    /**
     * 图像处理标志;0：未处理，1：图像经过处理
     */
    @TableField("ImageProcFlag")
    private Integer ImageProcFlag;
    /**
     * 视频文件大小,单位byte
     */
    @TableField("FileSize")
    private Integer FileSize;

    public Integer getId() {
	return id;
    }

    public void setId(Integer id) {
	this.id = id;
    }

    @JsonProperty(value = "ImageID")
    public String getImageID() {
	return ImageID;
    }

    public void setImageID(String ImageID) {
	this.ImageID = ImageID;
    }

    @JsonProperty(value = "InfoKind")
    public Integer getInfoKind() {
	return InfoKind;
    }

    public void setInfoKind(Integer InfoKind) {
	this.InfoKind = InfoKind;
    }

    @JsonProperty(value = "ImageSource")
    public String getImageSource() {
	return ImageSource;
    }

    public void setImageSource(String ImageSource) {
	this.ImageSource = ImageSource;
    }

    @JsonProperty(value = "SourceVideoID")
    public String getSourceVideoID() {
	return SourceVideoID;
    }

    public void setSourceVideoID(String SourceVideoID) {
	this.SourceVideoID = SourceVideoID;
    }

    @JsonProperty(value = "OriginImageID")
    public String getOriginImageID() {
	return OriginImageID;
    }

    public void setOriginImageID(String OriginImageID) {
	this.OriginImageID = OriginImageID;
    }

    @JsonProperty(value = "EventSort")
    public Integer getEventSort() {
	return EventSort;
    }

    public void setEventSort(Integer EventSort) {
	this.EventSort = EventSort;
    }

    @JsonProperty(value = "DeviceID")
    public String getDeviceID() {
	return DeviceID;
    }

    public void setDeviceID(String DeviceID) {
	this.DeviceID = DeviceID;
    }

    @JsonProperty(value = "StoragePath")
    public String getStoragePath() {
	return StoragePath;
    }

    public void setStoragePath(String StoragePath) {
	this.StoragePath = StoragePath;
    }

    @JsonProperty(value = "FileHash")
    public String getFileHash() {
	return FileHash;
    }

    public void setFileHash(String FileHash) {
	this.FileHash = FileHash;
    }

    @JsonProperty(value = "FileFormat")
    public String getFileFormat() {
	return FileFormat;
    }

    public void setFileFormat(String FileFormat) {
	this.FileFormat = FileFormat;
    }

    @JsonProperty(value = "ShotTime")
    @JsonFormat(pattern = "yyyyMMddHHmmss", timezone = "GMT+8")
    public String getShotTime() {
	return ShotTime;
    }

    public void setShotTime(String ShotTime) {
	this.ShotTime = ShotTime;
    }

    @JsonProperty(value = "Title")
    public String getTitle() {
	return Title;
    }

    public void setTitle(String Title) {
	this.Title = Title;
    }

    @JsonProperty(value = "TitleNote")
    public String getTitleNote() {
	return TitleNote;
    }

    public void setTitleNote(String TitleNote) {
	this.TitleNote = TitleNote;
    }

    @JsonProperty(value = "SpecialIName")
    public String getSpecialIName() {
	return SpecialIName;
    }

    public void setSpecialIName(String SpecialIName) {
	this.SpecialIName = SpecialIName;
    }

    @JsonProperty(value = "Keyword")
    public String getKeyword() {
	return Keyword;
    }

    public void setKeyword(String Keyword) {
	this.Keyword = Keyword;
    }

    @JsonProperty(value = "ContentDescription")
    public String getContentDescription() {
	return ContentDescription;
    }

    public void setContentDescription(String ContentDescription) {
	this.ContentDescription = ContentDescription;
    }

    @JsonProperty(value = "SubjectCharacter")
    public String getSubjectCharacter() {
	return SubjectCharacter;
    }

    public void setSubjectCharacter(String SubjectCharacter) {
	this.SubjectCharacter = SubjectCharacter;
    }

    @JsonProperty(value = "ShotPlaceCode")
    public String getShotPlaceCode() {
	return ShotPlaceCode;
    }

    public void setShotPlaceCode(String ShotPlaceCode) {
	this.ShotPlaceCode = ShotPlaceCode;
    }

    @JsonProperty(value = "ShotPlaceFullAdress")
    public String getShotPlaceFullAdress() {
	return ShotPlaceFullAdress;
    }

    public void setShotPlaceFullAdress(String ShotPlaceFullAdress) {
	this.ShotPlaceFullAdress = ShotPlaceFullAdress;
    }

    @JsonProperty(value = "ShotPlaceLongitude")
    public Double getShotPlaceLongitude() {
	return ShotPlaceLongitude;
    }

    public void setShotPlaceLongitude(Double ShotPlaceLongitude) {
	this.ShotPlaceLongitude = ShotPlaceLongitude;
    }

    @JsonProperty(value = "ShotPlaceLatitude")
    public Double getShotPlaceLatitude() {
	return ShotPlaceLatitude;
    }

    public void setShotPlaceLatitude(Double ShotPlaceLatitude) {
	this.ShotPlaceLatitude = ShotPlaceLatitude;
    }

    @JsonProperty(value = "HorizontalShotDirection")
    public String getHorizontalShotDirection() {
	return HorizontalShotDirection;
    }

    public void setHorizontalShotDirection(String HorizontalShotDirection) {
	this.HorizontalShotDirection = HorizontalShotDirection;
    }

    @JsonProperty(value = "VerticalShotDirection")
    public String getVerticalShotDirection() {
	return VerticalShotDirection;
    }

    public void setVerticalShotDirection(String VerticalShotDirection) {
	this.VerticalShotDirection = VerticalShotDirection;
    }

    @JsonProperty(value = "SecurityLevel")
    public String getSecurityLevel() {
	return SecurityLevel;
    }

    public void setSecurityLevel(String SecurityLevel) {
	this.SecurityLevel = SecurityLevel;
    }

    @JsonProperty(value = "Width")
    public Integer getWidth() {
	return Width;
    }

    public void setWidth(Integer Width) {
	this.Width = Width;
    }

    @JsonProperty(value = "Height")
    public Integer getHeight() {
	return Height;
    }

    public void setHeight(Integer Height) {
	this.Height = Height;
    }

    @JsonProperty(value = "CameraManufacturer")
    public String getCameraManufacturer() {
	return CameraManufacturer;
    }

    public void setCameraManufacturer(String CameraManufacturer) {
	this.CameraManufacturer = CameraManufacturer;
    }

    @JsonProperty(value = "CameraVersion")
    public String getCameraVersion() {
	return CameraVersion;
    }

    public void setCameraVersion(String CameraVersion) {
	this.CameraVersion = CameraVersion;
    }

    @JsonProperty(value = "ApertureValue")
    public Integer getApertureValue() {
	return ApertureValue;
    }

    public void setApertureValue(Integer ApertureValue) {
	this.ApertureValue = ApertureValue;
    }

    @JsonProperty(value = "ISOSensitivity")
    public Integer getISOSensitivity() {
	return ISOSensitivity;
    }

    public void setISOSensitivity(Integer ISOSensitivity) {
	this.ISOSensitivity = ISOSensitivity;
    }

    @JsonProperty(value = "FocalLength")
    public Integer getFocalLength() {
	return FocalLength;
    }

    public void setFocalLength(Integer FocalLength) {
	this.FocalLength = FocalLength;
    }

    @JsonProperty(value = "QualityGrade")
    public String getQualityGrade() {
	return QualityGrade;
    }

    public void setQualityGrade(String QualityGrade) {
	this.QualityGrade = QualityGrade;
    }

    @JsonProperty(value = "CollectorName")
    public String getCollectorName() {
	return CollectorName;
    }

    public void setCollectorName(String CollectorName) {
	this.CollectorName = CollectorName;
    }

    @JsonProperty(value = "CollectorOrg")
    public String getCollectorOrg() {
	return CollectorOrg;
    }

    public void setCollectorOrg(String CollectorOrg) {
	this.CollectorOrg = CollectorOrg;
    }

    @JsonProperty(value = "CollectorIDType")
    public String getCollectorIDType() {
	return CollectorIDType;
    }

    public void setCollectorIDType(String CollectorIDType) {
	this.CollectorIDType = CollectorIDType;
    }

    @JsonProperty(value = "CollectorID")
    public String getCollectorID() {
	return CollectorID;
    }

    public void setCollectorID(String CollectorID) {
	this.CollectorID = CollectorID;
    }

    @JsonProperty(value = "EntryClerk")
    public String getEntryClerk() {
	return EntryClerk;
    }

    public void setEntryClerk(String EntryClerk) {
	this.EntryClerk = EntryClerk;
    }

    @JsonProperty(value = "EntryClerkOrg")
    public String getEntryClerkOrg() {
	return EntryClerkOrg;
    }

    public void setEntryClerkOrg(String EntryClerkOrg) {
	this.EntryClerkOrg = EntryClerkOrg;
    }

    @JsonProperty(value = "EntryClerkIDType")
    public String getEntryClerkIDType() {
	return EntryClerkIDType;
    }

    public void setEntryClerkIDType(String EntryClerkIDType) {
	this.EntryClerkIDType = EntryClerkIDType;
    }

    @JsonProperty(value = "EntryClerkID")
    public String getEntryClerkID() {
	return EntryClerkID;
    }

    public void setEntryClerkID(String EntryClerkID) {
	this.EntryClerkID = EntryClerkID;
    }

    @JsonProperty(value = "EntryTime")
    @JsonFormat(pattern = "yyyyMMddHHmmss", timezone = "GMT+8")
    public Date getEntryTime() {
	return EntryTime;
    }

    public void setEntryTime(Date EntryTime) {
	this.EntryTime = EntryTime;
    }

    @JsonProperty(value = "ImageProcFlag")
    public Integer getImageProcFlag() {
	return ImageProcFlag;
    }

    public void setImageProcFlag(Integer ImageProcFlag) {
	this.ImageProcFlag = ImageProcFlag;
    }

    @JsonProperty(value = "FileSize")
    public Integer getFileSize() {
	return FileSize;
    }

    public void setFileSize(Integer FileSize) {
	this.FileSize = FileSize;
    }

    @Override
    public Serializable pkVal() {
	return this.id;
    }

    @Override
    public String toString() {
	return "TBigDataImageInfo{" + ", id=" + id + ", ImageID=" + ImageID + ", InfoKind=" + InfoKind
		+ ", ImageSource=" + ImageSource + ", SourceVideoID=" + SourceVideoID + ", OriginImageID="
		+ OriginImageID + ", EventSort=" + EventSort + ", DeviceID=" + DeviceID + ", StoragePath=" + StoragePath
		+ ", FileHash=" + FileHash + ", FileFormat=" + FileFormat + ", ShotTime=" + ShotTime + ", Title="
		+ Title + ", TitleNote=" + TitleNote + ", SpecialIName=" + SpecialIName + ", Keyword=" + Keyword
		+ ", ContentDescription=" + ContentDescription + ", SubjectCharacter=" + SubjectCharacter
		+ ", ShotPlaceCode=" + ShotPlaceCode + ", ShotPlaceFullAdress=" + ShotPlaceFullAdress
		+ ", ShotPlaceLongitude=" + ShotPlaceLongitude + ", ShotPlaceLatitude=" + ShotPlaceLatitude
		+ ", HorizontalShotDirection=" + HorizontalShotDirection + ", VerticalShotDirection="
		+ VerticalShotDirection + ", SecurityLevel=" + SecurityLevel + ", Width=" + Width + ", Height=" + Height
		+ ", CameraManufacturer=" + CameraManufacturer + ", CameraVersion=" + CameraVersion + ", ApertureValue="
		+ ApertureValue + ", ISOSensitivity=" + ISOSensitivity + ", FocalLength=" + FocalLength
		+ ", QualityGrade=" + QualityGrade + ", CollectorName=" + CollectorName + ", CollectorOrg="
		+ CollectorOrg + ", CollectorIDType=" + CollectorIDType + ", CollectorID=" + CollectorID
		+ ", EntryClerk=" + EntryClerk + ", EntryClerkOrg=" + EntryClerkOrg + ", EntryClerkIDType="
		+ EntryClerkIDType + ", EntryClerkID=" + EntryClerkID + ", EntryTime=" + EntryTime + ", ImageProcFlag="
		+ ImageProcFlag + ", FileSize=" + FileSize + "}";
    }
}
